2020年のパーフェクトPHP Part1
この記事は2020年のパーフェクトPHPとして「パーフェクトPHP」のPart 1 PHP 〜 overviewの内容を補足しています。
未検証の内容を含み、正確ではない内容を含むことを承知ください。
1章 PHP概論
1.1 PHPについて
リスト1.1
原書ではHTMLのDOCTYPE宣言としてXHTML 1.0 Transitionalを使用しています
XHTMLは2018年に正式にsuperseded(他の勧告に置き換えられ廃止)の状態となりました
現在ではHTML 5 Living Standardと呼ばれるHTMLが主流であり、以後HTML5を前提とします
HTML5として書き直すと以下のようになります
code:リスト1.1 PHPのサンプル.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello, World</title>
</head>
<body>
<p><?php echo "Hello, I'm PHP!"; ?></p>
</body>
</html>
1.1.2 PHPの歴史
原書では1995年のPHP 1.0リリースから2010年当時の最新版である5.3までを言及しています
PHP 5.3は本来PHP6に取り入れられる予定だった改善が多く取り込まれており、現代PHPに続く一つの区切りとなるバージョンでした
PHPの歴史のURLは https://www.php.net/manual/ja/history.php.php に移動しました
原書ではhttp://jp2.php.netという地域ミラーのリンクになっていましたが2019年頃にphp.netの常時SSL化とともにミラーリング制度が廃止されました
1.1.4 コーディングスタイル
原書では「Zend Framework PHP標準コーディング規約」を標準的なコーディングスタイルとしています
2020年現代ではPHP-FIGによるコーディング規約が知られています
PSR-1: Basic Coding Standard
PSR-12: Extended Coding Style
原書で言及されているZend Framework PHP標準コーディング規約に基く命名規則はPSRと矛盾しないので以後も従います
1.2 Webアプリケーションの仕組み
1.2.3 Linux (CentOS/Fedora)
RPM系LinuxにおけるPHPのバージョン一覧 https://rpmfind.net/linux/rpm2html/search.php?query=php
Remi's RPM repositoryで最新版のPHPを追加することもできます
後述しますが、2020年においてphp-pearをインストールする必要はありません
1.2.4 Linux (Debian/Ubuntu)
DebianにおけるPHPのバージョン一覧 https://packages.debian.org/search?keywords=php
Ubuntu https://packages.ubuntu.com/eoan/php
後述しますが、2020年においてphp-pearをインストールする必要はありません
1.2.5 Mac OS X
Mac OS Xは2016年にリリースされたSierraからmacOSが正式名称になりました
Mac Ports(port)は現在も現役ですがコミュニティではHomebrewが好まれています
brew install php mysqlでインストール可能です
1.2.6 Windows
XAMPPは現在も利用可能です https://www.apachefriends.org/jp/index.html
MAMPのような代替もあります https://www.mamp.info/en/windows/
好きな方を選んで構いません
COLUMN
2020年現在でSkypeを利用することは多くないかもしれませんが、80ポートを利用する問題は健在です
1.2.8 ソースからのインストール
最新のソースコードのURLは https://www.php.net/downloads.php から調べられます
2020年現在は単純なURLでダウンロードできます
wget "https://www.php.net/distributions/php-7.4.8.tar.bz2"
こちらも地域(国別)ミラーリングは廃止されました
1.3.3 コンパイルと実行
大筋においてはこの通りですが、PHP 7.0以降ではAST(抽象構文木)への変換が加わっています
PHPカンファレンス2016でdo-akiさんが発表したPHP AST 徹底解説に非常に詳しいです
Apacheの説明について
原書が対象としているApache HTTP Serverは2.2系で現行は2.4系です
最新のベストプラクティスは変わっていますが、おそらく原書の設定のままでも動くと思います (未検証)
→ 2020年のパーフェクトPHP Part2